select count(*)のアスタリスクの由来はなんだろう?
挙動の違いはわかったが、アスタリスクの由来はなんなんだろう?
why count(*) asteriskとかで検索してみたがうまく調べたい情報に辿り着かない
ちなみに、COUNT(*)という表記は慣習的なものであり、実はアスタリスクを指定する意味はあまりない。COUNT(1)を指定しても同じ結果が得られるのである。 なんか理由はなさそう?
code:1.diff
-<StmtSimple ... StatementText="select count(*) from sys.all_columns" ...
+<StmtSimple ... StatementText="select count(1) from sys.all_columns" ...
-<QueryPlan ... CompileTime="6" CompileCPU="6" ...
+<QueryPlan ... CompileTime="5" CompileCPU="5" ...
-<OptimizerHardwareDependentProperties ... MaxCompileMemory="1984416" />
+<OptimizerHardwareDependentProperties ... MaxCompileMemory="1984320" />
-<RunTimeCountersPerThread ... ActualElapsedms="3" ActualCPUms="3" />
+<RunTimeCountersPerThread ... ActualElapsedms="2" ActualCPUms="2" />
-<RunTimeCountersPerThread ... ActualElapsedms="3" ActualCPUms="3" />
+<RunTimeCountersPerThread ... ActualElapsedms="2" ActualCPUms="2" />
-<RunTimeCountersPerThread ... ActualElapsedms="2" ActualCPUms="2" ...
+<RunTimeCountersPerThread ... ActualElapsedms="1" ActualCPUms="1" ...
参考
29.1 COUNT関数
テーブルの行数、カーディナリティ